package com.ivan.stu.notetool.network.api;

import com.ivan.stu.notetool.network.postbody.GetNoteSubjectPostBody;
import com.ivan.stu.notetool.network.postbody.GetSystemInfro;
import com.ivan.stu.notetool.network.postbody.NoteIDPostBody;
import com.ivan.stu.notetool.network.postbody.NoteInfoPostBody;
import com.ivan.stu.notetool.network.postbody.NotePostBody;
import com.ivan.stu.notetool.network.postbody.UpLoadNotePostBody;
import com.ivan.stu.notetool.network.response.ApiResponse;
import com.ivan.stu.notetool.network.response.MySubjectResponse;
import com.ivan.stu.notetool.network.response.MySystemInfro;
import com.ivan.stu.notetool.network.response.NoteIDResponse;
import com.ivan.stu.notetool.network.response.NoteResponse;
import com.ivan.stu.notetool.network.response.OperateNoteResponse;

import retrofit2.http.Body;
import retrofit2.http.Headers;
import retrofit2.http.POST;
import io.reactivex.Observable;

/**
 * Author: gongwq on 2017/8/11 0011 .
 * Email: gwq_0111@163.com
 * Descriptions:个人计划Api
 */

public interface TestApi {


    /**
     * 获取笔记列表
     *
     */
    @Headers(
            "Content-Type:application/json; charset=utf-8"
    )
    @POST("api/V2/Notes/GetNotesInformation")

    Observable<ApiResponse<NoteResponse>> getNoteList(@Body NoteInfoPostBody body);


    @Headers(
            "Content-Type:application/json; charset=utf-8"
    )
    @POST("api/V2/Notes/GetSubjectInfo")

    Observable<MySubjectResponse> getNoteSubjectList(@Body GetNoteSubjectPostBody body);


    @Headers(
            "Content-Type:application/json; charset=utf-8"
    )
    @POST("api/V2/Notes/GetSystemInfo")
    Observable<MySystemInfro> getSystemInfo(@Body GetSystemInfro body);


    @Headers(
            "Content-Type:application/json; charset=utf-8"
    )
    @POST("api/V2/Notes/OperateNote")
    Observable<OperateNoteResponse> addNote(@Body NotePostBody body);

    @Headers(
            "Content-Type:application/json; charset=utf-8"
    )
    @POST("api/V2/Notes/GetNoteInfoByID")
    Observable<ApiResponse<NoteIDResponse>> getNoteByID(@Body NoteIDPostBody body);


    @Headers(
            "Content-Type:application/json; charset=utf-8"
    )
    @POST("api/V2/Notes/UploadNoteSourceInfo")
    Observable<OperateNoteResponse> upLoadNoteInfo(@Body UpLoadNotePostBody body);

}
